<<<(main)#if !defined($(base_name)_PARAM_H_INCLUDED_H)
#define $(base_name)_PARAM_H_INCLUDED_H

#include "AsyncCall\NetAddr.h"
#include "AsyncCall\DataPackage.h"

#include "$(lower_base_name)_struct.h"

namespace $(service_name)
{
<<<(methods,have_ack)<<<(comments)//$(comment)
>>>class Mm_$(method_name) : public McSyncCmdData
{
protected:
	//cmd<<<(in_args)
	$(arg_type) $(arg_name);>>>
public:
	//ack<<<(out_args)
	$(arg_type) $(arg_name);>>>
protected:
	virtual long get_pktype(void) const;
	virtual void buildCmd(O_STREAM& os) const;
	virtual void parseCmd(I_STREAM& is);
	virtual void buildAck(O_STREAM& os) const;
	virtual void parseAck(I_STREAM& is);

public:
	Mm_$(method_name)();<<<(none,have_in_arg)
	Mm_$(method_name)(<<<(in_args)<<<(none,!is_first), >>>$(const_arg_ref_type) $(arg_name)>>>);>>>};
>>>
<<<(methods,!have_ack)<<<(comments)//$(comment)
>>>class Me_$(method_name) : public McAsyncCmdData
{
protected:<<<(in_args)
	$(arg_type) $(arg_name);>>>
	virtual long get_pktype(void) const;
	virtual void buildCmd(O_STREAM& os) const;
	virtual void parseCmd(I_STREAM& is);
public:
	Me_$(method_name)();
<<<(none,have_in_arg)	Me_$(method_name)(<<<(in_args)<<<(none,!is_first), >>>$(const_arg_ref_type) $(arg_name)>>>);
>>>};
>>>

<<<(exception_defs)<<<(comments)//$(comment)
>>>class Mex_$(exception_name) : public McSyncCmdData
{
protected:<<<(exception_members)
	$(arg_type) $(arg_name);>>>
	virtual long get_pktype(void) const;
	virtual void buildCmd(O_STREAM& os) const;
	virtual void parseCmd(I_STREAM& is);
	virtual void buildAck(O_STREAM& os) const;
	virtual void parseAck(I_STREAM& is);
public:
	Mex_$(exception_name)();
<<<(none,have_exception)	Mex_$(exception_name)(<<<(exception_members)<<<(none,!is_first), >>>$(const_arg_ref_type) $(arg_name)>>>);
>>>};
>>>
};
#endif // !defined($(base_name)_PARAM_H_INCLUDED_H)>>>